|
Stufe 2: Das erste
Studienjahr
program Hello(input,
output) begin
writeln('Hello World') end.
Stufe 3: Im
Hauptstudium
(defun hello (print (cons
'Hello (list 'World))))
Stufe 4: Der 1.
Job
#include
<stdio.h>
void main(void) { char
*message[] = {"Hello ", "World"}; int
i;
for(i = 0; i < 2;
++i) printf("%s",
message[i]);
printf("\n"); }
Stufe 5: Erfahrener
Softwareentwickler
#include
<iostream.h> #include <string.h>
class
string { private: int size; char
*ptr; public: string() : size(0), ptr(new char('\0'))
{};
string(const string &s) :
size(s.size) { ptr = new
char[size + 1]; strcpy(ptr,
s.ptr); };
string()
{ delete [] ptr;
};
friend ostream& operator <<(ostream
&, const string &);
string&
operator=(const char *);
ostream
&operator<<(ostream &stream, const string
&s) { return(stream
<< s.ptr); }; };
string&
string::operator=(const char *chrs) { if (this !=
&chrs) { delete[]
ptr; size =
strlen(chrs);
ptr = new char[size +
1]; strcpy(ptr, chrs);
}
return *this; }
int
main(void) { string str;
str =
"Hello World"; cout << str <<
endl;
return 0; }
Stufe 6:
Chefentwickler
[
uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820) ]
library
LHello { // bring in the master library
importlib("actimp.tlb");
importlib("actexp.tlb");
// bring in my
interfaces #include "pshlo.idl"
[
uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
]
cotype THello
{ interface
IHello; interface
IPersistFile; }; };
[
exe,
uuid(2573F890-CFEE-101A-9A9F-00AA00342820) ]
module
CHelloLib { // some code related header
files importheader("pshlo.h");
importheader("shlo.hxx");
importheader("mycls.hxx");
// needed
typelibs importlib("actimp.tlb");
importlib("actexp.tlb");
importlib("thlo.tlb");
[
uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
aggregatable ]
coclass
CHello { cotype
THello; }; };
#include "ipfix.hxx"
extern
HANDLE hEvent;
class CHello : public
CHelloBase { public:
IPFIX(CLSID_CHello);
CHello(IUnknown
*pUnk); ~CHello();
HRESULT
__stdcall PrintSz(LPWSTR pwszString);
private:
static int cObjRef; };
#include "thlo.h" #include
"pshlo.h" #include "shlo.hxx" #include "mycls.hxx"
int
CHello::cObjRef = 0;
CHello::CHello(IUnknown *pUnk) :
CHelloBase(pUnk) { cObjRef++; }
HRESULT
__stdcall CHello::PrintSz(LPWSTR pwszString) {
printf("%ws\n", pwszString); return
ResultFromScode(S_OK); }
CHello::~CHello() {
// when the object count goes to zero, stop the server
cObjRef--;
if (cObjRef ==
0)
PulseEvent(hEvent); }
#include "pshlo.h" #include
"shlo.hxx" #include "mycls.hxx"
HANDLE hEvent;
int _cdecl
main(int argc, char * argv[]) { ULONG
ulRef; DWORD dwRegistration;
CHelloCF
*pCF = new CHelloCF(); hEvent = CreateEvent(NULL, FALSE,
FALSE, NULL);
// Initialize the OLE
libraries CoInitializeEx(NULL,
COINIT_MULTITHREADED);
CoRegisterClassObject(CLSID_CHello,
pCF,
CLSCTX_LOCAL_SERVER,
REGCLS_MULTIPLEUSE, &dwRegistration);
// wait on
an event to stop WaitForSingleObject(hEvent,
INFINITE);
// revoke and release the class
object
CoRevokeClassObject(dwRegistration); ulRef =
pCF->Release();
// Tell OLE we are going
away. CoUninitialize();
return
0; }
extern CLSID CLSID_CHello; extern UUID
LIBID_CHelloLib; CLSID CLSID_CHello =
{/* 2573F891-CFEE-101A-9A9F-00AA00342820
*/
0x2573F891,
0xCFEE, 0x101A, { 0x9A, 0x9F, 0x00,
0xAA, 0x00, 0x34, 0x28, 0x20 }
};
UUID LIBID_CHelloLib =
{/* 2573F890-CFEE-101A-9A9F-00AA00342820
*/
0x2573F890,
0xCFEE, 0x101A, { 0x9A, 0x9F,
0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};
#include "pshlo.h" #include "shlo.hxx" #include
"clsid.h"
int _cdecl main(int argc, char *
argv[]) { HRESULT hRslt;
IHello* pHello; ULONG
ulCnt; IMoniker* pmk;
WCHAR wcsT[_MAX_PATH];
WCHAR wcsPath[2 * _MAX_PATH];
// get object path wcsPath[0] = '\0';
wcsT[0] = '\0';
if (argc == 1)
{ mbstowcs(wcsPath, argv[1],
strlen(argv[1]) + 1);
wcsupr(wcsPath); } else
{ fprintf(stderr, "Object path must be
specified\n"); return 1;
}
// get print string if (argc ==
2) mbstowcs(wcsT, argv[2],
strlen(argv[2]) + 1);
else wcscpy(wcsT, L"Hello
World");
printf("Linking to object %ws\n",
wcsPath); printf("Text String %ws\n",
wcsT);
// Initialize the OLE libraries
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);
if
(SUCCEEDED(hRslt)) {
hRslt = CreateFileMoniker(wcsPath,
&pmk);
if
(SUCCEEDED(hRslt))
hRslt = BindMoniker(pmk, 0,
IID_IHello,
(void**)&pHello);
if
(SUCCEEDED(hRslt)) { // print a
string out
pHello-PrintSz(wcsT);
Sleep(2000); ulCnt =
pHello->Release();
}
else printf("Failure
to connect, status: %lx\n", hRslt);
// Tell OLE we are going away.
CoUninitialize(); }
return
0; }
Stufe 7: Lernender
Hacker
#!/usr/local/bin/perl $msg="Hello,
world.\n"; if ($#ARGV = 0) {
while(defined($arg=shift(@ARGV)))
{ $outfilename =
$arg; open(FILE, "" . $outfilename) ||
die "Can't
write
$arg:$!\n"; print (FILE
$msg); close(FILE) || die "Can't close
$arg: $!\n"; } } else { print
($msg); } 1;
Stufe 8: Erfahrener
Hacker
#include
<stdio.h> #define S "Hello, World\n" main(){exit(printf(S) ==
strlen(S) ? 0 : 1);}
Stufe 9: Ausgebuffter
Hacker
% cc -o a.out
/src/misc/hw/hw.c % a.out
Stufe 10: Guru
Hacker
% cat Hello,
world.
Stufe 11: Neuer
Manager
10 PRINT "HELLO WORLD" 20
END
Stufe 12: Mittleres
Management
mail -s "Hello, world."
bob@b12 Bob, could you please write me a program that prints
"Hello world."?
I need it by tomorrow.
Stufe 13: Gehobenes
Management
% zmail jim I need a "Hello,
world." program by this afternoon.
Stufe 14:
Geschäftsführer
% letter letter: Command not
found. % mail To: ^X ^F ^C % help mail help: Command not
found. % damn! !: Event unrecognized % logout
|